package ar.uba.fi.algo3.algoTank.model.armas;

import ar.uba.fi.algo3.algoTank.model.Vector;
import ar.uba.fi.algo3.algoTank.model.escenarios.Escenario;
import ar.uba.fi.algo3.algoTank.model.proyectiles.BalaCanion;
import ar.uba.fi.algo3.algoTank.model.tanques.Tanque;
import ar.uba.fi.algo3.algoTank.util.Constantes;

public class Canion extends Arma {

	public Canion(int municiones, Tanque tanque) {
		super(municiones, tanque);
	}

	protected void crearProyectil() {
		BalaCanion proyectil = new BalaCanion(getDireccion());

		// Obtengo el tamanio del tanque
		Vector tamanioTanque = ((getTanque()).getForma()).getTamanio();

		// muevo la posicion de la bala segun el tamanio del tanque para evitar
		// colision
		if (getDireccion().equals(Constantes.direccion.ARRIBA)) {
			proyectil.getPosicion().sumarVector(new Vector(0, tamanioTanque.getCoordY()));
		}
		if (getDireccion().equals(Constantes.direccion.ABAJO)) {
			proyectil.getPosicion().sumarVector(new Vector(0, tamanioTanque.getCoordY() * (-1)));
		}
		if (getDireccion().equals(Constantes.direccion.DERECHA)) {
			proyectil.getPosicion().sumarVector(new Vector(tamanioTanque.getCoordX(), 0));
		}
		if (getDireccion().equals(Constantes.direccion.IZQUIERDA)) {
			proyectil.getPosicion().sumarVector(new Vector(tamanioTanque.getCoordX() * (-1), 0));
		}

		Escenario escenario = Escenario.getInstancia();
		escenario.agregarObjeto(proyectil);

	}
}
